home *** CD-ROM | disk | FTP | other *** search
-
- Listing 1. Impulse response function
-
- #include <stdio.h>
-
- void impulse_response(FILE *out, int N,
- double a, double b, double c)
- {
- double
- y = c, /* The most recent system output value */
- y1 = 0; /* The previous output */
-
- /* Time t = 0, before the impulse. */
- fprintf(out, "%lg\n", y1);
-
- /* Time t = 1, the instant of the impulse. */
- fprintf(out, "%lg\n", y);
-
- N -= 2; /* Two points already written */
-
- /* All later times, t > 1 */
- while(N-- >= 0)
- {
- double t = y;
- y = a*y + b*y1;
- y1 = t;
- fprintf(out, "%lg\n", y);
- }
- }
-
-